package com.ty.util;

import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.io.FileOutputStream;

/**
 * File工具类
 *
 * @Author Tommy
 * @Date 2025/11/12
 */
@Slf4j
public class FileUtil {

    /**
     * 获取模板文件
     *
     * @param templateName 模板名称
     * @return File
     */
    public static File tempalte(String templateName) {
        String path = FileUtil.class.getClassLoader().getResource("file_templates/" + templateName).getFile();
        return new File(path);
    }

    /**
     * 获取文件输出流对象
     *
     * @param fileName 文件名称
     * @return FileOutputStream
     */
    public static FileOutputStream outputStream(String fileName) throws Exception {
        String path = outputPath("file_out", "");
        path += File.separator + fileName;
        System.out.println("输出文件：" + path);

        File file = new File(path);
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
        }
        return new FileOutputStream(file);
    }

    /**
     * 获取输出路径
     *
     * @param fileName 文件名称
     * @return String
     */
    public static String outputPath(String fileName) {
        String path = outputPath(fileName, "public");
        log.info("保存路径 {}", path);
        return path;
    }

    /**
     * 获取输出路径
     *
     * @param fileName 文件名称
     * @param target   目录名称
     * @return String
     */
    public static String outputPath(String fileName, String target) {
        String path = FileUtil.class.getClassLoader().getResource(target).getFile();
        path += File.separator + fileName;
        return path;
    }
}
